package com.lagou.rabbitmq.direct.default1;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.nio.charset.StandardCharsets;

public class Producer {

    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        //指定协议 amqp://
        //指定用户名 root
        //指定密码 123456
        //指定host 47.115.74.219
        //指定端口号 5672
        //指定虚拟主机 %2f
        factory.setUri("amqp://root:123456@47.115.74.219:5672/%2f");

        Connection connection = factory.newConnection();

        Channel channel = connection.createChannel();

        //声明队列
        //第一个参数 交换器名称
        //第二个参数 是否持久化
        //第三个参数 是否排他
        //第四个参数 是否自动删除
        //第五个参数 交换器属性信息
        channel.queueDeclare("queue.default.ex",false ,false,false,null);

        //发送消息
        //交换器的名称
        //该消息的路由键
        //该消息的属性
        //消息内容的字节数组
        for(int i = 0;i <= 15;i++) {
            //在发送消息的时候没有指定交换器的名字，此时使用的是默认的交换器，默认交换器就没有名字
            //路由键就是目的地消息队列的名字
            channel.basicPublish("",
                    "queue.default.ex",
                    null,
                    ("hello world fan:"+i).getBytes(StandardCharsets.UTF_8));
        }

        channel.close();
        connection.close();
    }

}
